/*   
 * Copyright (c) 2010-2020 DMGIS Ltd. All Rights Reserved.   
 *   
 * This software is the confidential and proprietary information of   
 * DMGIS. You shall not disclose such Confidential Information   
 * and shall use it only in accordance with the terms of the agreements   
 * you entered into with DMGIS.   
 *   
 */
package com.dmgis.qxfw.dataservice.bigdata.service;


import com.dmgis.qxfw.dataservice.businessservice.api.entity.qx.heavy_forecast;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.zy.tour_actual_img;
import com.dmgis.qxfw.dataservice.businessservice.common.domain.*;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public interface IWeatherForecastService {
	/**
	 * 城市天气信息
	 * 
	 * @param county
	 * @param idOrName
	 * @param sc
	 * @param date
	 * @param localFlag
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public WeatherInfo getCityWeather(String county, String idOrName, String sc, String date, String localFlag);

	/**
	 * 根据城市名称名称获取天气
	 *
	 * @param name
	 * @param sc
	 * @param date
	 * @return
	 * @author dsq
	 * @date 2018年11月5日
	 */
	public WeatherInfo getCityWeather(String name, String sc, String date);

	/**
	 * 获取实况天气，温度，降水，风速，风向
	 * 
	 * @param stationid
	 * @param type
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public SmallStation getSKInfoList(String stationid, String type);

	/**
	 * 获取预报天气
	 * 
	 * @param stationid
	 * @param sc
	 * @param date
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public CzStation[] getYBInfoList(String stationid, String sc, String date);

	/**
	 * 获取南充市精细化预报结果,限定南充市范围
	 *
	 * @param stationid
	 * @param sc
	 * @param date
	 * @return
	 * @author dsq
	 * @date 2018年11月7日
	 */
	public CzStation[] getTownYBInfoList(String stationid, String sc, String date);

	/**
	 * 获取景点预报天气
	 * 
	 * @param date
	 * @param sc
	 * @param stationid
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public CzStation[] getTourInfoList(String date, String sc, String stationid);

	/**
	 * 获取景区天气信息
	 * 
	 * @param tourName
	 * @param sc
	 * @param date
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public TourInfo getTourWeather(String tourName, String sc, String date,HttpServletRequest request);

	/**
	 * 景区信息说明
	 * 
	 * @param tourName
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public TourStaInfo getTourInfo(String tourName,HttpServletRequest request);

	/**
	 * 获取实景天气图片
	 *
	 * @param name
	 * @param type
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public TourStaInfo getActImgStaInfo(String name, String type,HttpServletRequest request);

	/**
	 * 获取最近一天的预警信息
	 *
	 * @param city
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public WarningInfo[] getWarning(String city);

	/**
	 * 获取预警信息根据预警编号
	 * 
	 * @param warningId
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public Object getWarningById(String warningId);

	/**
	 * 获取指数信息,本地制作的
	 * 
	 * @param tourStaName
	 * @param countyName
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public ZhishuInfo[] getZhiShuInfo1(String tourStaName, String countyName);

	/**
	 * 获取指数信息，网络数据获取
	 * 
	 * @param name
	 * @param countyName
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public ZhishuInfo[] getZhiShuInfo2(String name, String countyName);

	/**
	 * 获取所有城镇预报站点
	 *
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public List<String> getAllStationCHN();

	/**
	 * 获取所有站点信息信息
	 *
	 * @return
	 * @author dsq
	 * @date 2018年11月5日
	 */
	public List<XYInfo> getAllStationXYInfoCHN();

	/**
	 * 根据站点名获取站点经纬度信息
	 * 
	 * @param stationName
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public XYInfo getXYInfo(String stationName);

	/**
	 * 根据经纬度获取最近的站点id
	 * 
	 * @param lon
	 * @param lat
	 * @param city
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public String GetNearestStaIdByXY(String lon, String lat, String city);

	/**
	 * 获取南充市范围内最近关联站点
	 *
	 * @param lon
	 * @param lat
	 * @return
	 * @author dsq
	 * @date 2018年11月7日
	 */
	public String GetNcNearestStaIdByXY(String lon, String lat);

	/**
	 * 根据经纬度获取最近的城市或景区
	 *
	 * @param lon
	 * @param lat
	 * @param arr
	 * @return
	 * @author dsq
	 * @date 2018年11月5日
	 */
	public String GetNearestCityNameByXY(String lon, String lat, List<XYInfo> arr);

	/**
	 * 获取所有景区的信息，景点名称，经纬度
	 * 
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public ArrayList<Object> getAllTourStaInfo();

	/**
	 * 根据景区站点名获取景区站点经纬度信息
	 * 
	 * @param stationName
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public TourXYInfo getTourXYInfo(String stationName);

	/**
	 * 根据景区经纬度获取最近的站点id
	 *
	 * @param lon
	 * @param lat
	 * @param city
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public String GetNearestStaNameByTourXY(String lon, String lat, String city);

	/**
	 * 获取等值线图片,温度要素，和雨量要素，一小时实况
	 * 
	 * @param
	 * @param element
	 * @param url
	 *            网络路径
	 * @param localPath
	 *            本地路径
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public ContourImg getSKDZTList(String element, String url, String localPath,String date);

	/**
	 * 获取当天最新的雷达图
	 * 
	 * @param type
	 * @param yj
	 * @param station
	 * @param url
	 * @param localPath
	 *            本地路径
	 * @param application
	 *            应用程序名称
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public List<ContourImg> getRadarList(String type, String yj, String station, String url, String localPath,
                                         String application);

	/**
	 * 获取当天最新的云图
	 * 
	 * @param type
	 * @param url
	 * @param localPath
	 * @return
	 * @author dsq
	 * @date 2018年10月31日
	 */
	public List<ContourImg> getYTList(String type, String url, String localPath);

	//获取实景监控图片
	public List<tour_actual_img> getSjtupian(String urlPath, String localPath, String stationname,HttpServletRequest request);
//
//
//
	/**
	 * 手动判断重污染天气
	 * @param start_date
	 * @param type
	 * @return
	 */
	List<heavy_forecast> getRGresult(String start_date, String type);

	/**
	 * 初始化重污染天气
	 * @return
	 */
	public Date getheavyFcst();

	/**
	 * 获取最新的景点森林火险预报图
	 *
	 * @return
	 * @author QTVZ
	 * @date 2018年10月31日
	 */
	public  ContourImg getFireList(String producttype, HttpServletRequest request);

    Object getProductImgList(String producttype,HttpServletRequest request);

	public ContourImg getYBDZTList(String element, String currentUrl, String localPath,String date);
}
